#include "audio.h"
#include "son.h"
#include "commun/utilise_sdl.h"
#include "lecture_son.h"

extern const char ouverture_audio[] = "Impossible d'ouvrir le systeme audio";

void audio::initialiser() {
	dependant_de<sdl> sdl_doit_etre_lance;
	if(SDL_InitSubSystem(SDL_INIT_AUDIO) < 0)
		throw une_erreur<initialisation>(true);
	if(Mix_OpenAudio(frequence_echantillonnage, AUDIO_S16SYS, nb_canaux_lecture, taille_tampon) < 0)
		throw une_erreur<ouverture_audio>(true);
}

void audio::fermer() {
	Mix_CloseAudio();
	SDL_QuitSubSystem(SDL_INIT_AUDIO);
}

module_audio::module_audio() throw(erreur) {
	Mix_AllocateChannels(audio::nb_pistes);
}

void module_audio::jouer(lecture_son &s) {
	Mix_PlayChannel(-1, s.get_chunk(), 0);
}
